package com.luobr.backend.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.luobr.backend.model.dto.analyze.*;
import com.luobr.backend.model.entity.Space;
import com.luobr.backend.model.vo.analyze.*;
import com.luobr.backend.model.vo.user.UserLoginVO;

import java.util.List;

/**
* @author 罗念笙
* @createDate 2025-03-11 14:55:44
*/
public interface SpaceAnalyzeService extends IService<Space> {

    /**
     * 获取空间资源使用分析
     *
     * @param spaceUsageAnalyzeRequest 请求类
     * @param loginVO 登录用户
     * @return
     */
    SpaceUsageAnalyzeResponse getSpaceUsageAnalyze (SpaceUsageAnalyzeRequest spaceUsageAnalyzeRequest, UserLoginVO loginVO);

    /**
     * 获取空间里图片的分类分析
     *
     * @param spaceCategoryAnalyzeRequest 请求类
     * @param loginVO 登录用户
     * @return
     */
    List<SpaceCategoryAnalyzeResponse> getSpaceCategoryAnalyze(SpaceCategoryAnalyzeRequest spaceCategoryAnalyzeRequest, UserLoginVO loginVO);

    /**
     * 获取空间里图片的标签分析
     *
     * @param spaceTagAnalyzeRequest 请求类
     * @param loginVO 登录用户
     * @return
     */
    List<SpaceTagAnalyzeResponse> getSpaceTagAnalyze(SpaceTagAnalyzeRequest spaceTagAnalyzeRequest, UserLoginVO loginVO);

    /**
     * 获取空间里图片大小的分析
     *
     * @param spaceSizeAnalyzeRequest 请求类
     * @param loginVO 登录用户
     * @return
     */
    List<SpaceSizeAnalyzeResponse> getSpaceSizeAnalyze(SpaceSizeAnalyzeRequest spaceSizeAnalyzeRequest, UserLoginVO loginVO);

    /**
     * 用户行为分析（日/周/月 图片上传时间分布）
     * @param spaceUserActionAnalyzeRequest 请求类
     * @param loginVO 登录用户
     * @return
     */
    List<SpaceUserActionAnalyzeResponse> getSpaceUserActionAnalyze(SpaceUserActionAnalyzeRequest spaceUserActionAnalyzeRequest, UserLoginVO loginVO);

    /**
     * 获取空间排序分析（空间使用大小排序）
     *
     * @param spaceRankAnalyzeRequest 请求类
     * @return
     */
    List<Space> getSpaceRankAnalyze(SpaceRankAnalyzeRequest spaceRankAnalyzeRequest);
}